<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <title>DSpace Documentation : XMLUI Configuration and Customization</title>
	    <link rel="stylesheet" href="styles/site.css" type="text/css" />
        <META http-equiv="Content-Type" content="text/html; charset=UTF-8">	    
    </head>

    <body>
	    <table class="pagecontent" border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="#ffffff">
		    <tr>
			    <td valign="top" class="pagebody">
				    <div class="pageheader">
					    <span class="pagetitle">
                            DSpace Documentation : XMLUI Configuration and Customization
                                                    </span>
				    </div>
				    <div class="pagesubheading">
					    This page last changed on Feb 17, 2011 by <font color="#0050B2">helix84</font>.
				    </div>

				    <h1><a name="XMLUIConfigurationandCustomization-DSpaceSystemDocumentation%3AManakin%5CXMLUI%5CConfigurationandCustomization"></a>DSpace System Documentation: Manakin [XMLUI] Configuration and Customization</h1>

<p>The DSpace digital repository supports two user interfaces: one based on JavaServer Pages (JSP) technologies and one based upon the Apache Cocoon framework (XMLUI). This chapter describes those parameters which are specific to the Manakin (XMLUI) interface based upon the Cocoon framework.</p>

<style type='text/css'>/*<![CDATA[*/
div.rbtoc1297951040386 {margin-left: 0px;padding: 0px;}
div.rbtoc1297951040386 ul {list-style: none;margin-left: 0px;}
div.rbtoc1297951040386 li {margin-left: 0px;padding-left: 0px;}

/*]]>*/</style><div class='rbtoc1297951040386'>
<ul>
    <li><span class='TOCOutline'>1</span> <a href='#XMLUIConfigurationandCustomization-ManakinConfigurationPropertyKeys'>Manakin Configuration Property Keys</a></li>
    <li><span class='TOCOutline'>2</span> <a href='#XMLUIConfigurationandCustomization-ConfiguringThemesandAspects'>Configuring Themes and Aspects</a></li>
<ul>
    <li><span class='TOCOutline'>2.1</span> <a href='#XMLUIConfigurationandCustomization-Aspects'>Aspects</a></li>
    <li><span class='TOCOutline'>2.2</span> <a href='#XMLUIConfigurationandCustomization-Themes'>Themes</a></li>
</ul>
    <li><span class='TOCOutline'>3</span> <a href='#XMLUIConfigurationandCustomization-MultilingualSupport'>Multilingual Support</a></li>
    <li><span class='TOCOutline'>4</span> <a href='#XMLUIConfigurationandCustomization-CreatingaNewTheme'>Creating a New Theme</a></li>
    <li><span class='TOCOutline'>5</span> <a href='#XMLUIConfigurationandCustomization-CustomizingtheNewsDocument'>Customizing the News Document</a></li>
    <li><span class='TOCOutline'>6</span> <a href='#XMLUIConfigurationandCustomization-AddingStaticContent'>Adding Static Content</a></li>
    <li><span class='TOCOutline'>7</span> <a href='#XMLUIConfigurationandCustomization-EnablingOAIOREHarvesterusingXMLUI'>Enabling OAI-ORE Harvester using XMLUI</a></li>
<ul>
    <li><span class='TOCOutline'>7.1</span> <a href='#XMLUIConfigurationandCustomization-AutomaticHarvesting%28Scheduler%29'>Automatic Harvesting (Scheduler)</a></li>
</ul>
    <li><span class='TOCOutline'>8</span> <a href='#XMLUIConfigurationandCustomization-AdditionalXMLUILearningResources'>Additional XMLUI Learning Resources</a></li>
</ul></div>

<h2><a name="XMLUIConfigurationandCustomization-ManakinConfigurationPropertyKeys"></a>Manakin Configuration Property Keys</h2>

<p>In an effort to save the programmer/administrator some time, the configuration table below is taken from 5.3.43. <em>XMLUI Specific Configuration</em>.</p>
<div class='table-wrap'>
<table class='confluenceTable'><tbody>
<tr>
<td class='confluenceTd'> Property: </td>
<td class='confluenceTd'> <em>xmlui.supportedLocales</em> </td>
</tr>
<tr>
<td class='confluenceTd'> Example Value: </td>
<td class='confluenceTd'> <em>xmlui.supportedLocales = en, de</em> </td>
</tr>
<tr>
<td class='confluenceTd'> Informational Note: </td>
<td class='confluenceTd'> A list of supported locales for Manakin. Manakin will look at a user's browser configuration for the first language that appears in this list to make available to in the interface. This parameter is a comma separated list of Locales. All types of Locales country, country_language, country_language_variant. Note that if the appropriate files are not present (i.e. Messages_XX_XX.xml) then Manakin will fall back through to a more general language. </td>
</tr>
<tr>
<td class='confluenceTd'> Property: </td>
<td class='confluenceTd'> <em>xmlui.force.ssl</em> </td>
</tr>
<tr>
<td class='confluenceTd'> Example Value: </td>
<td class='confluenceTd'> <em>xmlui.force.ssl = true</em> </td>
</tr>
<tr>
<td class='confluenceTd'> Informational Note: </td>
<td class='confluenceTd'> Force all authenticated connections to use SSL, only non-authenticated connections are allowed over plain http. If set to true, then you need to ensure that the '<em>dspace.hostname</em>' parameter is set to the correctly. </td>
</tr>
<tr>
<td class='confluenceTd'> Property: </td>
<td class='confluenceTd'> <em>xmlui.user.registration</em> </td>
</tr>
<tr>
<td class='confluenceTd'> Example Value: </td>
<td class='confluenceTd'> <em>xmlui.user.registration = true</em> </td>
</tr>
<tr>
<td class='confluenceTd'> Informational Note: </td>
<td class='confluenceTd'> Determine if new users should be allowed to register. This parameter is useful in conjunction with Shibboleth where you want to disallow registration because Shibboleth will automatically register the user. Default value is true. </td>
</tr>
<tr>
<td class='confluenceTd'> Property: </td>
<td class='confluenceTd'> <em>xmlui.user.editmetadata</em> </td>
</tr>
<tr>
<td class='confluenceTd'> Example Value: </td>
<td class='confluenceTd'> <em>xmlui.user.editmetadata = true</em> </td>
</tr>
<tr>
<td class='confluenceTd'> Informational Note: </td>
<td class='confluenceTd'> Determines if users should be able to edit their own metadata. This parameter is useful in conjunction with Shibboleth where you want to disable the user's ability to edit their metadata because it came from Shibboleth. Default value is true. </td>
</tr>
<tr>
<td class='confluenceTd'> Property: </td>
<td class='confluenceTd'> <em>xmlui.user.assumelogon</em> </td>
</tr>
<tr>
<td class='confluenceTd'> Example Value: </td>
<td class='confluenceTd'> <em>xmlui.user.assumelogon = true</em> </td>
</tr>
<tr>
<td class='confluenceTd'> Informational Note: </td>
<td class='confluenceTd'> Determine if super administrators (those whom are in the Administrators group) can login as another user from the "edit eperson" page. This is useful for debugging problems in a running dspace instance, especially in the workflow process. The default value is false, i.e., no one may assume the login of another user. </td>
</tr>
<tr>
<td class='confluenceTd'> Property: </td>
<td class='confluenceTd'> <em>xmlui.user.loginredirect</em> </td>
</tr>
<tr>
<td class='confluenceTd'> Example Value: </td>
<td class='confluenceTd'> <em>xmlui.user.loginredirect = /profile</em> </td>
</tr>
<tr>
<td class='confluenceTd'> Informational Note: </td>
<td class='confluenceTd'> After a user has logged into the system, which url should they be directed? Leave this parameter blank or undefined to direct users to the homepage, or <em>/profile</em> for the user's profile, or another reasonable choice is <em>/submissions</em> to see if the user has any tasks awaiting their attention. The default is the repository home page. </td>
</tr>
<tr>
<td class='confluenceTd'> Property: </td>
<td class='confluenceTd'> <em>xmlui.theme.allowoverrides</em> </td>
</tr>
<tr>
<td class='confluenceTd'> Example Value: </td>
<td class='confluenceTd'> <em>xmlui.theme.allowoverrides = false</em> </td>
</tr>
<tr>
<td class='confluenceTd'> Informational Note: </td>
<td class='confluenceTd'> Allow the user to override which theme is used to display a particular page. When submitting a request add the HTTP parameter "themepath" which corresponds to a particular theme, that specified theme will be used instead of the any other configured theme. Note that this is a potential security hole allowing execution of unintended code on the server, this option is only for development and debugging it should be turned off for any production repository. The default value unless otherwise specified is "false". </td>
</tr>
<tr>
<td class='confluenceTd'> Property: </td>
<td class='confluenceTd'> <em>xmlui.bundle.upload</em> </td>
</tr>
<tr>
<td class='confluenceTd'> Example Value: </td>
<td class='confluenceTd'> <em>xmlui.bundle.upload = ORIGINAL, METADATA, THUMBNAIL, LICENSE, CC_LICENSE</em> </td>
</tr>
<tr>
<td class='confluenceTd'> Informational Note: </td>
<td class='confluenceTd'> Determine which bundles administrators and collection administrators may upload into an existing item through the administrative interface. If the user does not have the appropriate privileges (add and write) on the bundle then that bundle will not be shown to the user as an option. </td>
</tr>
<tr>
<td class='confluenceTd'> Property: </td>
<td class='confluenceTd'> <em>xmlui.community-list.render.full</em> </td>
</tr>
<tr>
<td class='confluenceTd'> Example Value: </td>
<td class='confluenceTd'> <em>xmlui.community-list.render.full = true</em> </td>
</tr>
<tr>
<td class='confluenceTd'> Informational Note: </td>
<td class='confluenceTd'> On the community-list page should all the metadata about a community/collection be available to the theme. This parameter defaults to true, but if you are experiencing performance problems on the community-list page you should experiment with turning this option off. </td>
</tr>
<tr>
<td class='confluenceTd'> Property: </td>
<td class='confluenceTd'> <em>xmlui.community-list.cache</em> </td>
</tr>
<tr>
<td class='confluenceTd'> Example Value: </td>
<td class='confluenceTd'> <em>xmlui.community-list.cache = 12 hours</em> </td>
</tr>
<tr>
<td class='confluenceTd'> Informational Note: </td>
<td class='confluenceTd'> Normally, Manakin will fully verify any cache pages before using a cache copy. This means that when the community-list page is viewed the database is queried for each community/collection to see if their metadata has been modified. This can be expensive for repositories with a large community tree. To help solve this problem you can set the cache to be assumed valued for a specific set of time. The downside of this is that new or editing communities/collections may not show up the website for a period of time. </td>
</tr>
<tr>
<td class='confluenceTd'> Property: </td>
<td class='confluenceTd'> <em>xmlui.bistream.mods</em> </td>
</tr>
<tr>
<td class='confluenceTd'> Example Value: </td>
<td class='confluenceTd'> <em>xmlui.bistream.mods = true</em> </td>
</tr>
<tr>
<td class='confluenceTd'> Informational Note: </td>
<td class='confluenceTd'> Optionally, you may configure Manakin to take advantage of metadata stored as a bitstream. The MODS metadata file must be inside the "METADATA" bundle and named MODS.xml. If this option is set to 'true' and the bitstream is present then it is made available to the theme for display. </td>
</tr>
<tr>
<td class='confluenceTd'> Property: </td>
<td class='confluenceTd'> <em>xmlui.bitstream.mets</em> </td>
</tr>
<tr>
<td class='confluenceTd'> Example Value: </td>
<td class='confluenceTd'> <em>xmlui.bitstream.mets = true</em> </td>
</tr>
<tr>
<td class='confluenceTd'> Informational Note: </td>
<td class='confluenceTd'> Optionally, you may configure Manakin to take advantage of metadata stored as a bitstream. The METS metadata file must be inside the "METADATA" bundle and named METS.xml. If this option is set to "true" and the bitstream is present then it is made available to the theme for display. </td>
</tr>
<tr>
<td class='confluenceTd'> Property: </td>
<td class='confluenceTd'> <em>xmlui.google.analytics.key</em> </td>
</tr>
<tr>
<td class='confluenceTd'> Example Value: </td>
<td class='confluenceTd'> <em>xmlui.google.analytics.key = UA-XXXXXX-X</em> </td>
</tr>
<tr>
<td class='confluenceTd'> Informational Note: </td>
<td class='confluenceTd'> If you would like to use google analytics to track general website statistics then use the following parameter to provide your analytics key. First sign up for an account at <a href="http://analytics.google.com" title="http://analytics.google.com">http://analytics.google.com</a>, then create an entry for your repositories website. Google Analytics will give you a snipit of javascript code to place on your site, inside that snip it is your Google Analytics key usually found in the line: &#95;uacct = "UA-XXXXXXX-X" Take this key (just the UA-XXXXXX-X part) and place it here in this parameter. </td>
</tr>
<tr>
<td class='confluenceTd'> Property: </td>
<td class='confluenceTd'> <em>xmlui.controlpanel.activity.max</em> </td>
</tr>
<tr>
<td class='confluenceTd'> Example Value: </td>
<td class='confluenceTd'> <em>xmlui.controlpanel.activity.max = 250</em> </td>
</tr>
<tr>
<td class='confluenceTd'> Informational Note: </td>
<td class='confluenceTd'> Assign how many page views will be recorded and displayed in the control panel's activity viewer. The activity tab allows an administrator to debug problems in a running DSpace by understanding who and how their DSpace is currently being used. The default value is 250. </td>
</tr>
<tr>
<td class='confluenceTd'> Property: </td>
<td class='confluenceTd'> <em>xmlui.controlpanel.activity.ipheader</em> </td>
</tr>
<tr>
<td class='confluenceTd'> Example Value: </td>
<td class='confluenceTd'> <em>xmlui.controlpanel.activity.ipheader = X-Forward-For</em> </td>
</tr>
<tr>
<td class='confluenceTd'> Informational Note: </td>
<td class='confluenceTd'> Determine where the control panel's activity viewer receives an events IP address from. If your DSpace is in a load balanced environment or otherwise behind a context-switch then you will need to set the parameter to the HTTP parameter that records the original IP address. </td>
</tr>
</tbody></table>
</div>



<h2><a name="XMLUIConfigurationandCustomization-ConfiguringThemesandAspects"></a>Configuring Themes and Aspects</h2>

<p>The Manakin user interface is composed of two distinct components: <em>aspects</em> and <em>themes</em>. Manakin aspects are like extensions or plugins for Manakin; they are interactive components that modify existing features or provide new features for the digital repository. Manakin themes stylize the look-and-feel of the repository, community, or collection.</p>

<p>The repository administrator is able to define which aspects and themes are installed for the particular repository by editing the <em>[dspace]/config/xmlui.xconf</em> configuration file. The <em>xmlui.xconf</em> file consists of two major sections: Aspects and Themes.</p>

<h3><a name="XMLUIConfigurationandCustomization-Aspects"></a>Aspects</h3>

<p>The <em>&lt;aspects&gt;</em> section defines the "Aspect Chain", or the linear set of aspects that are installed in the repository. For each aspect that is installed in the repository, the aspect makes available new features to the interface. For example, if the "submission" aspect were to be commented out or removed from the <em>xmlui.xconf</em>, then users would not be able to submit new items into the repository (even the links and language prompting users to submit items are removed). Each <em>&lt;aspect&gt;</em> element has two attributes, <em>name</em> and <em>path</em>. The name is used to identify the Aspect, while the path determines the directory where the aspect's code is located. Here is the default aspect configuration:</p>
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
    &lt;aspects&gt;
        &lt;aspect name=<span class="code-quote">"Artifact Browser"</span> path=<span class="code-quote">"resource:<span class="code-comment">//aspects/ArtifactBrowser/"</span> /&gt;
</span>        &lt;aspect name=<span class="code-quote">"Administration"</span>	path=<span class="code-quote">"resource:<span class="code-comment">//aspects/Administrative/"</span> /&gt;
</span>        &lt;aspect name=<span class="code-quote">"E-Person"</span> path=<span class="code-quote">"resource:<span class="code-comment">//aspects/EPerson/"</span>	/&gt;
</span>        &lt;aspect name=<span class="code-quote">"Submission and Workflow"</span> path=<span class="code-quote">"resource:<span class="code-comment">//aspects/Submission/"</span> /&gt;
</span>    &lt;/aspects&gt;</pre>
</div></div>
<p>A standard distribution of Manakin/DSpace includes four "core" aspects:</p>
<ul>
	<li><b>Artifact Browser</b> The Artifact Browser Aspect is responsible for browsing communities, collections, items and bitstreams, viewing an individual item and searching the repository.</li>
	<li><b>E-Person</b> The E-Person Aspect is responsible for logging in, logging out, registering new users, dealing with forgotten passwords, editing profiles and changing passwords.</li>
	<li><b>Submission</b> The Submission Aspect is responsible for submitting new items to DSpace, determining the workflow process and ingesting the new items into the DSpace repository.</li>
	<li><b>Administrative</b> The Administrative Aspect is responsible for administrating DSpace, such as creating, modifying and removing all communities, collections, e-persons, groups, registries and authorizations.</li>
</ul>



<h3><a name="XMLUIConfigurationandCustomization-Themes"></a>Themes</h3>

<p>The <em>&lt;themes&gt;</em> section defines a set of "rules" that determine where themes are installed in the repository. Each rule is processed in the order that it appears, and the first rule that matches determines the theme that is applied (so order is important). Each rule consists of a <em>&lt;theme&gt;</em> element with several possible attributes:</p>

<ul>
	<li><b>name</b> (<em>always required</em>)The name attribute is used to document the theme's name.</li>
	<li><b>path</b> (<em>always required</em>)The path attribute determines where the theme is located relative to the <em>themes/</em> directory and must either contain a trailing slash or point directly to the theme's <em>sitemap.xmap</em> file.</li>
	<li><b>regex</b> (<em>either regex and/or handle is required</em>)The regex attribute determines which URLs the theme should apply to.</li>
	<li><b>handle</b> (<em>either regex and/or handle is required</em>)The handle attribute determines which community, collection, or item the theme should apply to.<br/>
If you use the "handle" attribute, the effect is cascading, meaning if a rule is established for a community then all collections and items within that community will also have this theme apply to them as well. Here is an example configuration:
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
    &lt;themes&gt;
        &lt;theme name=<span class="code-quote">"Theme 1"</span> handle=<span class="code-quote">"123456789/23"</span> path=<span class="code-quote">"theme1/"</span>/&gt;
        &lt;theme name=<span class="code-quote">"Theme 2"</span> regex=<span class="code-quote">"community-list"</span>	path=<span class="code-quote">"theme2/"</span>/&gt;
        &lt;theme name=<span class="code-quote">"Reference Theme"</span> regex=<span class="code-quote">".*"</span> path=<span class="code-quote">"Reference/"</span>/&gt;
    &lt;/themes&gt;</pre>
</div></div>
<p>In the example above three themes are configured: "Theme 1", "Theme 2", and the "Reference Theme". The first rule specifies that "Theme 1" will apply to all communities, collections, or items that are contained under the parent community "123456789/23". The next rule specifies any URL containing the string "community-list" will get "Theme 2". The final rule, using the regular expression ".<b>", will match &#42;anything</b>, so all pages which have not matched one of the preceding rules will be matched to the Reference Theme.</p></li>
</ul>




<h2><a name="XMLUIConfigurationandCustomization-MultilingualSupport"></a>Multilingual Support</h2>

<p>The XMLUI user interface supports multiple languages through the use of internationalization catalogues as defined by the <a href="http://cocoon.apache.org/2.1/userdocs/i18nTransformer.html" title="Cocoon Internationalization Transformer">Cocoon Internationalization Transformer</a>. Each catalog contains the translation of all user-displayed strings into a particular language or variant. Each catalog is a single xml file whose name is based upon the language it is designated for, thus:</p>

<p>messages&#95;<em>language</em>_<em>country</em>_<em>variant</em>.xml</p>

<p>messages&#95;<em>language</em>_<em>country</em>.xml</p>

<p>messages&#95;<em>language</em>.xml</p>

<p>messages.xml</p>

<p>The interface will automatically determine which file to select based upon the user's browser and system configuration. For example, if the user's browser is set to Australian English then first the system will check if <em>messages_en_au.xml</em> is available. If this translation is not available it will fall back to <em>messages_en.xml</em>, and finally if that is not available, <em>messages.xml</em>.</p>

<p>Manakin supplies an English only translation of the interface. In order to add other translations to the system, locate the <em>[dspace-source]/dspace/modules/xmlui/src/main/webapp/i18n/</em> directory. By default this directory will be empty; to add additional translations add alternative versions of the <em>messages.xml</em> file in specific language and country variants as needed for your installation.</p>

<p>To set a language other than English as the default language for the repository's interface, simply name the translation catalogue for the new default language "<em>messages.xml</em>"</p>


<h2><a name="XMLUIConfigurationandCustomization-CreatingaNewTheme"></a>Creating a New Theme</h2>

<p>Manakin themes stylize the look-and-feel of the repository, community, or collection and are distributed as self-contained packages. A Manakin/DSpace installation may have multiple themes installed and available to be used in different parts of the repository. The central component of a theme is the sitemap.xmap, which defines what resources are available to the theme such as XSL stylesheets, CSS stylesheets, images, or multimedia files.<br/>
<b>1) Create theme skeleton</b><br/>
Most theme developers do not create a new theme from scratch; instead they start from the standard theme template, which defines a skeleton structure for a theme. The template is located at: <em>[dspace-source]/dspace-xmlui/dspace-xmlui-webbapp/src/main/webbapp/themes/template</em>. To start your new theme simply copy the theme template into your locally defined modules directory, <em>[dspace-source]/dspace/modules/xmlui/src/main/webbapp/themes/[your theme's directory]/</em>.<br/>
<b>2) Modify theme variables</b><br/>
The next step is to modify the theme's parameters so that the theme knows where it is located. Open the <em>[your theme's directory]/sitemap.xmap</em> and look for <em>&lt;global-variables&gt;</em></p>
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
    &lt;global-variables&gt;
        &lt;theme-path&gt;[your theme's 	directory]&lt;/theme-path&gt;
        &lt;theme-name&gt;[your theme's name]&lt;/theme-name&gt;
    &lt;/global-variables&gt;</pre>
</div></div>
<p>Update both the theme's path to the directory name you created in step one. The theme's name is used only for documentation.<br/>
<b>3) Add your CSS stylesheets</b><br/>
The base theme template will produce a repository interface without any style - just plain XHTML with no color or formatting. To make your theme useful you will need to supply a CSS Stylesheet that creates your desired look-and-feel. Add your new CSS stylesheets:</p>

<p><em>[your theme's directory]/lib/style.css</em> (The base style sheet used for all browsers)</p>

<p><em>[your theme's directory]/lib/style-ie.css</em> (Specific stylesheet used for internet explorer)<br/>
<b>4) Install theme and rebuild DSpace</b><br/>
Next rebuild and deploy DSpace (replace &lt;version&gt; with the your current release):</p>

<ol>
	<li>Rebuild the DSpace installation package by running the following command from your <em>[dspace-source]/dspace/</em> directory:
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">mvn <span class="code-keyword">package</span></pre>
</div></div></li>
	<li>Update all DSpace webapps to <em>[dspace]/webapps</em> by running the following command from your <em>[dspace-source]/dspace/target/dspace-[version]-build.dir</em> directory:
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">ant -Dconfig=[dspace]/config/dspace.cfg update </pre>
</div></div></li>
	<li>Deploy the the new webapps: 
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">cp -R /[dspace]/webapps/* /[tomcat]/webapps</pre>
</div></div></li>
	<li>Restart Tomcat<br/>
This will ensure the theme has been installed as described in the previous section "Configuring Themes and Aspects".</li>
</ol>



<h2><a name="XMLUIConfigurationandCustomization-CustomizingtheNewsDocument"></a>Customizing the News Document</h2>

<p>The XMLUI "news" document is only shown on the root page of your repository.  It was intended to provide the title and introductory message, but you may use it for anything.</p>

<p>The news document is located at <em>[dspace]/dspace/config/news-xmlui.xml</em>.  There is only one version; it is localized by inserting "i18n" callouts into the text areas.  It must be a complete and valid XML DRI document (see Chapter 15).</p>

<p>Its (the News document) exact rendering in the XHTML UI depends, of course, on the theme.  The default content is designed to operate with the reference themes, so when you modify it, be sure to preserve the tag structure and e.g. the exact attributes of the first DIV tag.  Also note that the text is DRI, not HTML, so you must use only DRI tags, such as the XREF tag to construct a link.</p>

<p>Example 1: a single language:</p>
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">&lt;document&gt;
      &lt;body&gt;
        &lt;div id=<span class="code-quote">"file.news.div.news"</span> n=<span class="code-quote">"news"</span> rend=<span class="code-quote">"primary"</span>&gt;
          &lt;head&gt; TITLE OF YOUR REPOSITORY HERE &lt;/head&gt;
          &lt;p&gt;
            INTRO MESSAGE HERE
            Welcome to my wonderful repository etc etc ...
            A service of &lt;xref target=<span class="code-quote">"http:<span class="code-comment">//myuni.edu/"</span>&gt;My University&lt;/xref&gt;
</span>          &lt;/p&gt;
        &lt;/div&gt;
      &lt;/body&gt;
      &lt;options/&gt;
      &lt;meta&gt;
        &lt;userMeta/&gt;
        &lt;pageMeta/&gt;
        &lt;repositoryMeta/&gt;
      &lt;/meta&gt;
   &lt;/document&gt;</pre>
</div></div>
<p>Example 2: all text replaced by references to localizable message keys:</p>
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
&lt;document&gt;
      &lt;body&gt;
        &lt;div id=<span class="code-quote">"file.news.div.news"</span> n=<span class="code-quote">"news"</span> rend=<span class="code-quote">"primary"</span>&gt;
          &lt;head&gt;&lt;i18n:text&gt;myuni.repo.title&lt;/i18n:text&gt;&lt;/head&gt;
          &lt;p&gt;
            &lt;i18n:text&gt;myuni.repo.intro&lt;/i18n:text&gt;
            &lt;i18n:text&gt;myuni.repo.a.service.of&lt;/i18n:text&gt;
            &lt;xref target=<span class="code-quote">"http:<span class="code-comment">//myuni.edu/"</span>&gt;&lt;i18n:text&gt;myuni.name&lt;/i18n:text&gt;&lt;/xref&gt;
</span>          &lt;/p&gt;
        &lt;/div&gt;
      &lt;/body&gt;
      &lt;options/&gt;
      &lt;meta&gt;
        &lt;userMeta/&gt;
        &lt;pageMeta/&gt;
        &lt;repositoryMeta/&gt;
      &lt;/meta&gt;
    &lt;/document&gt;
</pre>
</div></div>

<h2><a name="XMLUIConfigurationandCustomization-AddingStaticContent"></a>Adding Static Content</h2>

<p>The XMLUI user interface supports the addition of globally static content (as well as static content within individual themes).</p>

<p>Globally static content can be placed in the <em>[dspace-source]/dspace/modules/xmlui/src/main/webapp/static/</em> directory. By default this directory only contains the default <em>robots.txt</em> file, which provides helpful site information to web spiders/crawlers. However, you may also add static HTML (<em>&#42;.html</em>) content to this directory, as needed for your installation.</p>

<p>Any static HTML content you add to this directory may also reference static content (e.g. CSS, Javascript, Images, etc.) from the same <em>[dspace-source]/dspace/modules/xmlui/src/main/webapp/static/</em> directory. You may reference other static content from your static HTML files similar to the following:</p>
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
  &lt;link href=<span class="code-quote">"./<span class="code-keyword">static</span>/mystyle.css"</span> rel=<span class="code-quote">"stylesheet"</span> type=<span class="code-quote">"text/css"</span>/&gt;
  &lt;img src=<span class="code-quote">"./<span class="code-keyword">static</span>/images/<span class="code-keyword">static</span>-image.gif"</span> alt=<span class="code-quote">"Static image in /<span class="code-keyword">static</span>/images/ directory"</span>/&gt;
  &lt;img src=<span class="code-quote">"./<span class="code-keyword">static</span>/<span class="code-keyword">static</span>-image.jpg"</span> alt=<span class="code-quote">"Static image in /<span class="code-keyword">static</span>/ directory"</span>/&gt; </pre>
</div></div>

<h2><a name="XMLUIConfigurationandCustomization-EnablingOAIOREHarvesterusingXMLUI"></a>Enabling OAI-ORE Harvester using XMLUI</h2>

<p>This section will give the necessary steps to set up the OAI-ORE Harvester usig Manakin.</p>

<p>Setting up a collection (Collection Edit Screen):</p>

<ol>
	<li>Login and create a new collection.</li>
	<li>Go to the tab named "Content Source" that now appears next to "Edit Metadata" and "Assign Roles " in the collection edit screens.</li>
	<li>The two counter source options are standards (selected by default) and harvested.  Select "harvests from external source" and click Save.</li>
	<li>A new set of menus appear to configure the harvesting settings:
	<ul>
		<li>"OAI Provide" is in the URL of the OAI-PMH provider that the content from this collection should be harvested from.  The PMH provider deployed with DSpace typically has the form:"http://dspace.url/oai/reuqest".  For this example use "http://web01.library.tamu.edu/oai-h151/request"</li>
		<li>"OAI Set id" is the setSpec of the collection you wish to harvest from.Use "hdl_1969.1_5671" for this example.</li>
		<li>"Metadata format" determines the format that the descriptive metdata will be harvested.  Since DSpace stores metadata in its own internal format, not all metadata values might bet harvested if a specific format is specified.  Select "DSpace Intermediate Metadata" if available and "Simple Dublin Core" otherwise.</li>
		<li>Click the Test Settings button will verify the settings supplied in the previous steps and will usually let you know what, if anything is missing or does not match up.</li>
	</ul>
	</li>
	<li>The list of radio buttons labeled "Content being harvested" allows you to select the harvest level.  The first one requires no OAI-ORE support on the part of the provider and can be used to harvest metadata from any provider compliant with the OAI-PMH 2.0 specifications.  The middle options will harvest the metadata and generate links to bitstreams stored remotely, while the last one will perform full local replication. Select the middle option and click Save<br/>
At this point the settings are saved and the menu changes to provide three options:</li>
</ol>


<ul>
	<li>"Change Settings" takes you back to the edit screen.</li>
	<li>"Import Now" performs a single harvest from the remote collection  into the local one.  Success, notes, and errors encountered in the process will be reflected in the "Last Harvest Result" entry.  More detailed information is available in the DSpace log.  Note that the whole harvest cycle is executed within a single HTTP request and will time out for large collections.  For this reason, it is advisable to use the automatic harvest scheduler set up<br/>
either in XMLUI or from the command line.  If the scheduler is running, "Import Now" will handle the harvest task as a separate thread.</li>
	<li>"Reset and Reimport Collection" will perform the same function as "Import Now", but will clear the collection of all existing items before doing so.</li>
</ul>


<h3><a name="XMLUIConfigurationandCustomization-AutomaticHarvesting%28Scheduler%29"></a>Automatic Harvesting (Scheduler)</h3>

<p>Setting up automatic harvesting in the Control Panel Screen.</p>

<ul>
	<li>A new table, Harvesting, has been added under Administrative &gt; Control Panel.</li>
	<li>The panel offers the following information:
	<ul>
		<li>Available actions:
		<ul>
			<li>Start Harvester: starts the scheduler.  From this point on, all properly configured collections (listed on the next line) will be harvested at regular intervals.  This interval can be changed in the <em>dspace.cfg</em> using the "<em>harvester.harvestFrequency</em>" parameter.</li>
			<li>Pause: the "nice" stop; waits for the active harvests to finish, saves the state/progress and pauses execution.  Can be either resumed or stopped.</li>
			<li>Stop: the "full stop"; waits for the current item to finish harvesting, and aborts further execution.</li>
			<li>Reset Harvest Status:  since stopping in the middle of a harvest is likely to result in collections getting "stuck" in the queue, the button is available to clear all states.</li>
		</ul>
		</li>
	</ul>
	</li>
</ul>


<h2><a name="XMLUIConfigurationandCustomization-AdditionalXMLUILearningResources"></a>Additional XMLUI Learning Resources</h2>

<p>Useful links with further information into XMLUI Development</p>

<ul>
	<li><a href="http://www.slideshare.net/tdonohue/making-dspace-xmlui-your-own">Making DSpace XMLUI Your Own</a> &#45; Concentrates on using Maven to build Overlays in the XMLUI (Manakin). Also has very basic examples for JSPUI.  Based on DSpace 1.6.x.</li>
	<li><a href="http://www.tdl.org/files/LearningToUseManakin.pdf">Learning to Use Manakin (XMLUI)</a> &#45; Overview of how to use Manakin and how it works.  Based on DSpace 1.5, but also valid for 1.6.</li>
	<li><a href="http://www.tdl.org/wp-content/uploads/2009/04/Introducing%20Manakin.pdf">Introducing Manakin (XMLUI)</a></li>
</ul>


				    
                    			    </td>
		    </tr>
	    </table>
	    <table border="0" cellpadding="0" cellspacing="0" width="100%">
			<tr>
				<td height="12" background="https://wiki.duraspace.org/images/border/border_bottom.gif"><img src="images/border/spacer.gif" width="1" height="1" border="0"/></td>
			</tr>
		    <tr>
			    <td align="center"><font color="grey">Document generated by Confluence on Mar 25, 2011 19:21</font></td>
		    </tr>
	    </table>
    </body>
</html>